de.cebis.moccabox.monitoring.impl.hibernate
Class MetaSystem

java.lang.Object
  extended by de.cebis.moccabox.monitoring.impl.hibernate.MetaSystem
All Implemented Interfaces:
IMetaSystem

public class MetaSystem
extends java.lang.Object
implements IMetaSystem

Standardimplementierung des IMetaSystem, das über das Persistenz-Framework auf die Datenbasis zugreift.

Das Interface IMetaSystem kapselt die Zugriffe auf die Datenbasis durch die VO-Schicht und kann als entsprechende Zwischenschicht vor dem Zugriff entsprechende Integritätsprüfungen vornehmen, die verhindern, dass Änderungen auf der Datenbasis diese in einem nicht-konsistenten Zustand hinterlassen. Das IMetaSystem stellt damit das Herzstück der semantischen Integritätsprüfung des Framework dar.

In einem Repository muss hinterlegt werden, welchen Vorgangsobjekten der Zugriff auf welche Aktionen eines konzeptuellen Objektes erlaubt ist. Zusätzlich kann erfasst werden, welche weiterführenden Aktionen zur Koppelung durchgeführt werden müssen bzw. welche Konsistenzüberprüfungen stattzufinden haben. Das MetaSystem ist für eben diese Überprüfung und die Veranlassung weiterführender Aktionen zuständig.

Die Parametrisierung und Spezifikation des MetaSystem erfolgt über die jeweilige moccapart_x.xml.

 <monitor>
  <conceptaccess class="de.cebis.molap.domain.WorkroomService">
   <access type="create">
    <notify>de.cebis.molap.tasks.notification.WorkroomServiceCreatedNotificationTask</notify>
    <notify>de.cebis.molap.tasks.IdentMappingCreateTask</notify>
   </access>
   <access type="update">
    <notify>de.cebis.molap.tasks.notification.WorkroomServiceUpdatedNotificationTask</notify>
   </access>
   <access type="delete">
    <notify>de.cebis.molap.tasks.notification.WorkroomServiceDeletedNotificationTask</notify>
    <notify>de.cebis.molap.tasks.IdentMappingDeleteTask</notify>
   </access>
  </conceptaccess>
 </monitor>

Author:
weichelt

Constructor Summary
MetaSystem()
           
 
Method Summary
protected  void checkIntegrity(java.lang.Object concept, ConceptAccessBean cBean)
          Überprüft, ob die Abhängigkeiten - vor allem die Kardinalitäten - eines anzulegenden Objektes erfüllt sind.
 org.hibernate.Criteria createCriteria(java.lang.Class clazz, java.lang.Object source)
          Erzeugen eines Criteria-Objektes für eine bestimmte Klasse über das ein Zugriff auf die Datenbasis durch Hibernate ermöglicht wird.
 org.hibernate.Query createQuery(java.lang.String statement)
          Erzeugen eines Query-Objektes über das ein Zugriff auf die Datenbasis durch Hibernate ermöglicht wird.
 void delete(java.lang.Object concept, java.lang.Object source)
          Löschen eines Konzepts aus der Datenbasis.
 IRepositoryManager getRepositoryManager()
          Zurückliefern der Verwaltungskomponente des Repository.
 void load(java.lang.Object concept, java.lang.Object source)
          Laden eines Konzeptes aus der Datenbasis.
static void main(java.lang.String[] args)
          Funktion zu Testzwecken.
protected  void notify(java.lang.Object concept, java.lang.String operation)
          Benachrichtigen aller angemeldeter Listener, um die Konsistenzprüfung für die entsprechende Operation auf dem angegebenen Objekt durchführen zu können.
 void persist(java.lang.Object concept, java.lang.Object source)
          Persistieren eines neuen Konzepts in der Datenbasis.
 void save(java.lang.Object concept, java.lang.Object source)
          Speichern eines neuen Konzepts in der Datenbasis.
 void saveOrUpdate(java.lang.Object concept, java.lang.Object source)
          Anlegen oder aktualisieren eines Konzeptes in der Datenbasis.
 void setClient(IClient client)
          Setzen des beauftragenden IClient.
 void setEntityFactory(org.hibernate.SessionFactory sessionFactory)
          Setzen der Schnittstelle zum Persistenz-Framework.
 void setRepositoryManager(IRepositoryManager repositoryManager)
          Setzen des RepositoryManager, der den Zugriff auf das IRepository ermöglicht und damit den Zugriff auf die Anwendungsdaten.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MetaSystem

public MetaSystem()
Method Detail

createQuery

public org.hibernate.Query createQuery(java.lang.String statement)
Erzeugen eines Query-Objektes über das ein Zugriff auf die Datenbasis durch Hibernate ermöglicht wird.

Parameters:
statement - Statement der Abfrage, die erzeugt werden soll.
Returns:
Das Query-Objekt.

createCriteria

public org.hibernate.Criteria createCriteria(java.lang.Class clazz,
                                             java.lang.Object source)
Erzeugen eines Criteria-Objektes für eine bestimmte Klasse über das ein Zugriff auf die Datenbasis durch Hibernate ermöglicht wird.

Parameters:
clazz - Klasse, für die die Criteria erzeugt werden soll.
source - Ausführendes VO.
Returns:
Das Criteria-Objekt.

delete

public void delete(java.lang.Object concept,
                   java.lang.Object source)
Description copied from interface: IMetaSystem
Löschen eines Konzepts aus der Datenbasis.

Specified by:
delete in interface IMetaSystem
Parameters:
concept - Das zu löschende Konzept.
source - Das ausführende VO.

persist

public void persist(java.lang.Object concept,
                    java.lang.Object source)
Description copied from interface: IMetaSystem
Persistieren eines neuen Konzepts in der Datenbasis.

Specified by:
persist in interface IMetaSystem
Parameters:
concept - Das anzulegende Konzept.
source - Das ausführende VO.

load

public void load(java.lang.Object concept,
                 java.lang.Object source)
Description copied from interface: IMetaSystem
Laden eines Konzeptes aus der Datenbasis.

Specified by:
load in interface IMetaSystem
Parameters:
concept - Das zu ladende Konzept.
source - Das ausführende VO.

save

public void save(java.lang.Object concept,
                 java.lang.Object source)
Description copied from interface: IMetaSystem
Speichern eines neuen Konzepts in der Datenbasis.

Specified by:
save in interface IMetaSystem
Parameters:
concept - Das zu speichernde Konzept.
source - Das ausführende VO.

saveOrUpdate

public void saveOrUpdate(java.lang.Object concept,
                         java.lang.Object source)
Description copied from interface: IMetaSystem
Anlegen oder aktualisieren eines Konzeptes in der Datenbasis.

Specified by:
saveOrUpdate in interface IMetaSystem
Parameters:
concept - Das Konzept. Ist es in der Datenbasis vorhanden, wird es neu angelegt. Andernfalls wird der vorhandene Eintrag in der Datenbasis aktualisiert.
source - Das ausführende VO.

notify

protected void notify(java.lang.Object concept,
                      java.lang.String operation)
Benachrichtigen aller angemeldeter Listener, um die Konsistenzprüfung für die entsprechende Operation auf dem angegebenen Objekt durchführen zu können.

Parameters:
concept - Das Konzept, auf dem die Operation ausgeführt wird.
operation - Die ausgeführte Operation (update,delete,read,create).

checkIntegrity

protected void checkIntegrity(java.lang.Object concept,
                              ConceptAccessBean cBean)
                       throws IntegrityException,
                              ognl.OgnlException
Überprüft, ob die Abhängigkeiten - vor allem die Kardinalitäten - eines anzulegenden Objektes erfüllt sind. Wird die Kardinalität max überschritten, wird false zurückgeliefert.

Parameters:
concept - Das Konzept, das angelegt werden soll.
cBean - Beschreibungsdatei für das Konzept.
Throws:
Fehlermeldung, - falls Integrität nicht gewahrt ist.
IntegrityException
ognl.OgnlException

setEntityFactory

public void setEntityFactory(org.hibernate.SessionFactory sessionFactory)
Setzen der Schnittstelle zum Persistenz-Framework.

Parameters:
sessionFactory - Schnittstelle zum Peristenz-Rahmenwerk.

getRepositoryManager

public IRepositoryManager getRepositoryManager()
Zurückliefern der Verwaltungskomponente des Repository. Über den IRepositoryManager kann auf das zu Grunde liegende IRepository der Anwendung zugegriffen werden.

Returns:
Repository-Verwaltungskomponente.

setRepositoryManager

public void setRepositoryManager(IRepositoryManager repositoryManager)
Setzen des RepositoryManager, der den Zugriff auf das IRepository ermöglicht und damit den Zugriff auf die Anwendungsdaten.

Parameters:
repositoryManager - Schnittstelle zu den Anwendungsdaten.

setClient

public void setClient(IClient client)
Setzen des beauftragenden IClient.

Specified by:
setClient in interface IMetaSystem
Parameters:
client - Der beauftragende IClient.

main

public static final void main(java.lang.String[] args)
Funktion zu Testzwecken.

Parameters:
args - Keine Argumente.